package com.feemanage.domain.vo;

import com.common.annotation.Excel;
import com.common.utils.poi.MyDataHandler;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.framework.config.BigDecimalSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;

@Data
@ApiModel("经费支出列表")
public class BizProjectPayoutVo {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("主表id")
    private String id; //id

    @ApiModelProperty("项目id")
    private String projectId; //项目id

    @Excel(name = "项目名称")
    @ApiModelProperty("项目名称")
    private String projectName; //项目名称

    @Excel(name = "所属单位")
    @ApiModelProperty("单位名称")
    private String unitName; //单位名称

    @Excel(name = "负责人")
    @ApiModelProperty("负责人名称")
    private String chargerName; //负责人名称

    @Excel(name = "支出金额(元)",handler = MyDataHandler.class, args = { "金额-元"})
    @ApiModelProperty("支出金额")
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal payoutFee; //支出金额

    @Excel(name = "支出时间")
    @ApiModelProperty("支出时间")
    private LocalDate payoutDate; //支出时间

    @Excel(name = "摘要")
    @ApiModelProperty("摘要")
    private String NOTE; //摘要

    @ApiModelProperty("财务凭证内码")
    private String cwPznm; //财务凭证内码

    @Excel(name = "审核状态",readConverterExp = "-1=暂存,1=审批中,2=审批通过,3=审批不通过,-2=待完善")
    @ApiModelProperty("审核状态")
    private String checkstatus; //审核状态
    
    @ApiModelProperty("审核时间")
    private String checkdate;

    @ApiModelProperty("审核人")
    private String checker;

    /**
     *支出科目
     */
    @ApiModelProperty("支出科目")
    private String payoutSubjectName;

    /**
     *预算科目
     */
    @ApiModelProperty("预算科目")
    private String budgetSubjectName;

    @ApiModelProperty("流程实例id")
    private String processInstanceId;

    @ApiModelProperty("流程节点id")
    private String taskId;

    @ApiModelProperty("是否是审核人")
    private Boolean isAuditor;
}
